package com.starleague.battletech.controller;

import java.io.Closeable;

import com.starleague.battletech.command.AbstractBattletechCommand;
import com.starleague.battletech.game.IMutableBattletechGame;
import com.starleague.battletech.game.IMutableBattletechTeam;
import com.starleague.battletech.game.dto.IBattletechTeamDto;
import com.starleague.battletech.unit.mech.IMutableMech;
import com.starleague.battletech.unit.mech.dto.IMechDto;

// TODO: We use Closeable instead of AutoCloseable because we have to be Java 1.6 compliant for Android.
public interface IBattletechContext
        extends Closeable// AutoCloseable
{
    void onSuccess(AbstractBattletechCommand command);

    void onFailure(AbstractBattletechCommand command,
                   String reason);

    IMutableBattletechGame resolveGame();

    IMutableBattletechTeam resolveTeam(IBattletechTeamDto teamDto);

    IMutableMech resolveMech(IMechDto mechDto);
}
